// pages/feedback/feedback.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    issueTypes:['功能异常','产品改进'],
    issueType:'',
    description:'',
    images:[],
    contact:''
  },
  // 选择问题类型
  onIssueTypeChange(e) {
    const issueType = this.data.issueTypes[e.detail.value];
    this.setData({ issueType });
  },

  // 反馈描述输入
  onDescriptionInput(e) {
    this.setData({
      description: e.detail.value
    });
  },

  // 联系方式输入
  onContactInput(e) {
    this.setData({
      contact: e.detail.value
    });
  },

  // 选择图片
  chooseImage() {
    const that = this;
    wx.chooseImage({
      count: 3,  // 最多选择3张图片
      success(res) {
        that.setData({
          images: that.data.images.concat(res.tempFilePaths)
        });
      }
    });
  },

  // 上传反馈信息到云数据库
  async submitFeedback() {
    const { issueType, description, images, contact } = this.data;

    // 检查信息是否完整
    if (!issueType || !description || !contact) {
      wx.showToast({
        title: '请填写完整信息',
        icon: 'none'
      });
      return;
    }

    wx.showLoading({
      title: '提交中...'
    });

    try {
      // 上传图片到云存储
      const uploadedImages = await Promise.all(images.map(imagePath => {
        return wx.cloud.uploadFile({
          cloudPath: `feedback/${new Date().getTime()}-${Math.random() * 1000000}.png`,
          filePath: imagePath
        });
      }));

      // 获取图片 fileID 列表
      const imageFileIDs = uploadedImages.map(res => res.fileID);

      // 保存反馈信息到云数据库
      const db = wx.cloud.database();
      await db.collection('feedback').add({
        data: {
          issueType,
          description,
          contact,
          images: imageFileIDs,
          createdAt: db.serverDate()
        }
      });

      wx.hideLoading();
      wx.showToast({
        title: '感想您的反馈',
        icon: 'success',
        duration: 3000, //最大3000
      });

      setTimeout(() => {
        // 清空页面数据
        this.setData({
          issueType: '',
          description: '',
          images: [],
          contact: ''
        });
        //返回上一级
        wx.navigateBack({
          delta:1,
        });
      },2000);
      
    } catch (err) {
      console.error('提交失败', err);
      wx.hideLoading();
      wx.showToast({
        title: '提交失败，请稍后重试',
        icon: 'none'
      });
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})